package cyc2018.二分查找.原理;

/**
 * 第一个错误的版本
 */
public class Test278 {
    public int firstBadVersion(int n) {
        int start = 1;
        int end = n;
        while (start < end) {
            int mid = start + (end - start) / 2;
            if (isBadVersion(mid)) {
                // end 指向当前 bad 而不是 mid - 1
                end = mid;
            } else {
                // 那么下一个估计就是 bad 的了
                start = mid + 1;
            }
        }
        return start;
    }

    public boolean isBadVersion(int version) {
        return true;
    }
}
